console.log('1') // 同步代码
setTimeout(() => { // 位于宏任务中的立即执行
    console.log('2')
    process.nextTick(() => { // node 微任务
        console.log(3)
    })
    // 实例化过程是同步的 函数会同步运行
    // then 异步
    // 内部的被resolve
    new Promise((resolve) => {
        console.log(4) // 同步
        resolve() // then 函数 event loop 可以执行了
    }).then(() => {  // event loop 微任务 实例 resolve时
        console.log(5)
    }).then(() => {
        console.log('---')
    })
})
new Promise((resolve) => {
    console.log(7);// 同步代码
    resolve()
})
.then(() => {
    console.log(8)
}) 
process.nextTick(() => {
    console.log(6)
})

setTimeout( () => {
    console.log(9);
    process.nextTick(() => {
        console.log(10)
    })
    new Promise((resolve) => {
        console.log(11);
        resolve()
    }).then(() => {
        console.log(12)
    })
})